package site.jlopen.service.intf.node;

import java.util.List;

import site.jlopen.domain.datasource.event.KusciaDatasourceNodeEvent;
import site.jlopen.domain.node.event.KusciaNodeEvent;
import site.jlopen.entity.BaseResponse;
import site.jlopen.entity.req.NodeListReq;
import site.jlopen.entity.req.NodeReq;
import site.jlopen.kuscia.model.NodeVo;

public interface NodeService {

	public BaseResponse<String> create(Long userId, NodeReq nodeReq);

	public BaseResponse<NodeVo> createLite(Long userId, NodeListReq nodeReq);

	public BaseResponse<String> valid(Long userId, NodeReq nodeReq);

	public List<KusciaNodeEvent> list(Long userId);

	public List<KusciaNodeEvent> masterList(Long userId);

	public List<KusciaDatasourceNodeEvent> listByDsId(Long datasourceId);

	public List<KusciaNodeEvent> listByNotDs(Long userId);

	// 获取某个节点的合作对象
	public List<KusciaNodeEvent> listByRouteUser(Long userId, Long nodeId);
	
	public void getNodeById(Long nodeId);
	
	public KusciaNodeEvent getNodeByCode(Long userId, String nodeCode);
	
	public BaseResponse<String> restatus(Long nodeId);
	
	public BaseResponse<String> deleteNode(Long nodeId);
}
